package com.ls.controller.rule.model;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ls.entity.Linkman;
import com.ls.entity.SmsTemplate;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List;

/**
 * @ClassName HangUpRuleModel
 * @Description APP用户 挂机短信model
 * @Author pengyu
 * @Date 2024/6/27 17:14
 * @Version 1.0
 **/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class HangUpRuleModel {
    private Long ruleId;
    /**模板类别 0为挂机短信，1为关怀短信；为0时call_type生效，1时holiday_id生效*/
    private Integer templateCategory;
    /**
     * template_category0时生效 呼叫规则 ：0 表示 默认规则 呼入： 1 拒接 2 未接通 3 已接通 4勿扰；  呼出：5 所有
     */
    private Integer callType;

    /**
     *template_category0时生效 发送限制类型: 1 无限制 2 每天一次 3 每周一次 4 每月一次
     */
    private Integer limitType;

    /**
     * 规则名称
     */
    private String ruleName;

    /**
     * 规则是否启用
     */
    private Integer validFlag;

    /**
     * 规则生效-开始时间 hh:mm:ss.fraction
     */
    @JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
    @JSONField(format = "HH:mm:ss")
    private LocalTime startTime;

    /**
     *template_category0时生效 规则生效-结束时间 hh:mm:ss.fraction
     */
    @JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
    @JSONField(format = "HH:mm:ss")
    private LocalTime endTime;

    /**
     * APP用户主键
     */
    private Long customerId;

    /**
     * C端用户手机号码
     */
    private String phone;

    /**
     * 是否默认规则 0 默认 1 非默认 一个人只能有一个默认规则
     */
    private Integer defaultStatus;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 更新时间，自动
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

    /**
     * 自增主键
     */
    @TableField(exist = false)
    private List<SmsTemplate> templateList;
}
